The Structural Semantics of Inheritance
نویسنده
چکیده
A large variety of di erent concepts have been introduced to express the notion of inheritance. Single inheritance, multiple inheritance, multiple independent inheritance and delegation are all various forms of the concept of inheritance. In this paper, we give a structural framework for the semantics of these forms of inheritance. This framework accounts for the structural and for some of the behavioral characteristics of the many forms of inheritance. 1. The Many Forms of Inheritance Most arti cial intelligence systems as well as many programming languages and database management systems support techniques whereby one object or type can inherit from another object or type in some fashion, and a great diversity of distinct inheritance concepts have been proposed and implemented. The purpose of this article is to present a framework that captures some of this diversity so that the concepts can be compared. Our point of view is structural, but some of the behavioral aspects are also considered. For an excellent treatment of the behavioral aspects of inheritance in programming languages see [WE89]. For inheritance in arti cial intelligence see [4]. Most of the examples will use C++ [6] because this is the most common programming language supported by commercial object-oriented database management systems. We begin with a list of some of the variations on the general theme of inheritance. In this list, the concepts are merely introduced. We will discuss each concept in more detail in later sections. Kenneth Baclawski page 2 Taxonomy. The taxonomy or classi cation hierarchy or generalization hierarchy has been used in biology and other sciences for centuries to classify observations and phenomena. More recently it has been introduced into computer science where it has been used for the same kinds of tasks, but it has also been generalized in many ways. Single Inheritance. This is called simple public derivation in C++. This technique allows a type to inherit attributes from one other type, and in addition, supports additional features such as substitutability and late binding. Multiple Inheritance This is also called virtual public derivation in C++. This technique allows a type to inherit attributes from several other types, while still supporting substitutability and late binding. Multiple Independent Inheritance This is the default form of public derivation in C++. It di ers from multiple inheritance in a number of ways, yet still supports substitutability and late binding. Delegation This concept is also known as prototype inheritance or extension inheritance. It allows an object of one type to be used as a prototype for an object of another type, which extends the prototype. The extension can override attributes of the prototype. The extension object could also have the same type as the prototype, in which case it is a version of the prototype. The technique has been proposed as a way to support versions of objects. Private Inheritance. This is also called private derivation in C++. This mechanism is syntactically similar to multiple inheritance, but it does not have substitutability nor does it allow late binding. We now introduce a data model which is then used to express all of the forms of inheritance mentioned above.
منابع مشابه
The Structural Semantics of Subtypes and Inheritance
A large variety of di erent concepts have been introduced to express the subtypes and inheritance. Single inheritance, multiple inheritance, independent multiple inheritance and delegation are all various forms of subtyping and inheritance. In this paper, we give a structural framework for the semantics of these concepts that allows one to distinguish them in a precise manner. This framework ac...
متن کاملAn Operational Semantics for Foops Extended Abstract
FOOPS is a functional, concurrent, object-oriented language. We give a structural operational semantics for FOOPS, considering features such as: classes of objects with associated methods and attributes, object identity, dynamic object creation and deletion, overloading, polymorphism, inheritance with overriding, concurrency, nondeterminism and atomic execution.
متن کاملAnalyzing the problem of meaning in Shabastari’s Golshane Raz
Man has always been finding a complete model for semantics since the beginning. A model which can as a paradigm affects all branches of sciences. In the view of author, such a model can be found in Golshane Raz. Introducing the model from the work mentioned, the paper has tried to explain its sub structural foundations in three fields of ontology, epistemology and semantics. Some of the foundat...
متن کاملInterrogation of a University Classrooms in the Court of Semantics: Managerial Implications
The purpose of this article, within the framework of an interpretive study, was to study the semantics of a universitychr('39')s classrooms to create a critical awareness of the meanings of the symptoms and their functions at the context of physical artifacts, besides their managerial implications. To accomplish this goal, after taking pictures of the structural elements of the studied classroo...
متن کاملA Formal Executable Semantics for Java
Some of the main features of the Java language are that it is object-oriented and multi-threaded. This article presents a formal semantics of a large subset of Java, including inheritance, dynamic linking and multi-threading. To describe the object-oriented features, we use a big-step semantics. The semantics of the concurrency is deened in a small-step semantics, using a structural operational...
متن کاملProgramming Research Group AN OPERATIONAL SEMANTICS FOR FOOPS
FOOPS is a concurrent object-oriented language. We give a structural operational semantics for FOOPS, considering features such as classes of objects with associated methods and attributes, object identity, dynamic object creation and deletion, overloading, polymorphism, inheritance with overriding, concurrency, nondeterminism, atomic execution, evaluation of expressions as background processes...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1990